/**
 * Yolema.com Inc.
 * Copyright (c) 2011-2012 All Rights Reserved.
 */
package org.grayrabbit.pay.core.service.transaction;

import java.util.Date;
import java.util.List;

import org.grayrabbit.pay.core.model.entity.transaction.TradeHistory;
import org.grayrabbit.pay.core.model.pages.PageList;

/**
 * 
 * 
 * @author liyd
 * @version $Id: TradeHistoryService.java, v 0.1 Fri Jun 01 11:16:04 CST 2012 liyd Exp $
 */
public interface TradeHistoryService {

    /**
     * 查询业务对象列表
     * 
     * @param tradeHistory
     * @return
     */
    public PageList<TradeHistory> queryPageList(TradeHistory tradeHistory);

    /**
     * 根据查询条件查询
     * @param tradeHistory
     * @param startDate
     * @param endDate
     * @return
     */
    public PageList<TradeHistory> queryPageList(TradeHistory tradeHistory, Date startDate,
                                                Date endDate);

    /**
     * 根据Id得到实体对象
     * 
     * @param id
     * @return
     */
    public TradeHistory getById(Long id);

    /**
     * 根据id批量删除
     * 
     * @param idArray
     */
    public void deleteBatchById(Long[] idArray);

    /**
     * 添加一个对象
     * 
     * @param tradeHistory
     */
    public void insert(TradeHistory tradeHistory);

    /**
     * 更新一个对象
     * 
     * @param tradeHistory
     * @return
     */
    public int update(TradeHistory tradeHistory);

    /**
     * 删除一个对象
     * 
     * @param tradeHistory
     */
    public void delete(TradeHistory tradeHistory);

    /**
     * 根据系统id来获得交易历史记录
     * 
     * @param systemId
     * @return
     */
    public List<TradeHistory> getBySystemId(Long systemId);

    /**
     * 根据tradeHistory查询历史交易列表
     * 
     * @param tradeHistory
     * @return
     */
    public List<TradeHistory> queryList(TradeHistory tradeHistory);

}
